package models

import (
	"fmt"
	"gvb-server/Request"
	"gvb-server/global"
	"gvb-server/utils"
	"time"
)

type Message struct {
	ID               uint   `gorm:"primaryKey" json:"id"`
	CreateDate       int64  `json:"create_date"`
	UpdateDate       int64  `json:"-"`
	SendUserID       uint   `gorm:"primaryKey" json:"send_user_id"` // 发送人id
	SendUserModel    Users  `gorm:"foreignKey:SendUserID" json:"-"`
	SendUserNickName string `gorm:"size:42" json:"send_user_nick_name"` // 发送人名称
	SendUserAvatar   string `json:"send_user_avatar"`                   //发送人头像
	RevUserID        uint   `gorm:"primaryKey" json:"rev_user_id"`      // 接收人
	RevUserModel     Users  `gorm:"foreignKey:RevUserID" json:"-"`
	RevUserNickName  string `gorm:"size:42" json:"pev_user_nick_name"` // 接收人名称
	RevUserAvatar    string `json:"rev_user_avatar"`                   // 接收人头像
	IsRead           bool   `gorm:"default:false" json:"is_read"`      // 收方是否查看
	Content          string `json:"content"`                           // 消息内容
	DeletedAt        int64  `json:"deleted_at"`
	Status           int    `gorm:"default:1" json:"status"`
}

func MsgCreateData(m Request.MsgCreateRequest, sendUser Users, revcUser Users) (Pub utils.PubStatus) {
	Pub.Status = utils.SUCCESS
	Pub.Msg = "发送成功！"

	err := global.DB.Create(&Message{
		CreateDate:       time.Now().Unix(),
		SendUserID:       sendUser.ID,
		SendUserNickName: sendUser.NickName,
		SendUserAvatar:   sendUser.Avatar,
		RevUserID:        revcUser.ID,
		RevUserNickName:  revcUser.NickName,
		RevUserAvatar:    revcUser.Avatar,
		IsRead:           false,
		Content:          m.Content,
	}).Error
	fmt.Print(err)
	if err != nil {
		Pub.Status = utils.ERROR
		Pub.Msg = "添加失败！"
		return
	}
	return
}
